[INFO] fetching crate kotoba-db-cluster 0.1.21...
[INFO] testing kotoba-db-cluster-0.1.21 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate kotoba-db-cluster 0.1.21 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate kotoba-db-cluster 0.1.21
[INFO] finished tweaking crates.io crate kotoba-db-cluster 0.1.21
[INFO] tweaked toml for crates.io crate kotoba-db-cluster 0.1.21 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate kotoba-db-cluster 0.1.21 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kotoba-db-cluster 0.1.21 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.103
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.103
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.103
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.103
[INFO] [stderr]   Downloaded tempfile v3.22.0
[INFO] [stderr]   Downloaded js-sys v0.3.80
[INFO] [stderr]   Downloaded serde v1.0.225
[INFO] [stderr]   Downloaded serde_derive v1.0.225
[INFO] [stderr]   Downloaded serde_core v1.0.225
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.103
[INFO] [stderr]   Downloaded windows-sys v0.61.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 738f46665f2a5c6162009cbd94534f47aef4c28709b49dc188efbb5c8dcbcc98
[INFO] running `Command { std: "docker" "start" "-a" "738f46665f2a5c6162009cbd94534f47aef4c28709b49dc188efbb5c8dcbcc98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "738f46665f2a5c6162009cbd94534f47aef4c28709b49dc188efbb5c8dcbcc98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "738f46665f2a5c6162009cbd94534f47aef4c28709b49dc188efbb5c8dcbcc98", kill_on_drop: false }`
[INFO] [stdout] 738f46665f2a5c6162009cbd94534f47aef4c28709b49dc188efbb5c8dcbcc98
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 05f9c286774f77da4ca2194af2f326b9ad6dee0f275696a863c3bddb20c52509
[INFO] running `Command { std: "docker" "start" "-a" "05f9c286774f77da4ca2194af2f326b9ad6dee0f275696a863c3bddb20c52509", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling prettyplease v0.1.25
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling indexmap v2.11.4
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling serde_core v1.0.225
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling serde v1.0.225
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.22.0
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.225
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]    Compiling prost-types v0.11.9
[INFO] [stderr]    Compiling prost-build v0.11.9
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling tonic-build v0.9.2
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling kotoba-db-cluster v0.1.21 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `full`
[INFO] [stdout]   --> src/lib.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(feature = "full")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `full` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/consensus.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/membership.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/consensus.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let mut votes = 1; // Vote for ourselves
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:212:47
[INFO] [stdout]     |
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:219:50
[INFO] [stdout]     |
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:244:63
[INFO] [stdout]     |
[INFO] [stdout] 244 |     async fn handle_vote_request(&self, request: VoteRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:285:82
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...endEntriesRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:190:45
[INFO] [stdout]     |
[INFO] [stdout] 190 | ...eat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...re_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:150:42
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/replication.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         item: &ReplicationItem,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:235:42
[INFO] [stdout]     |
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/replication.rs:429:48
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn record_operation_failure(&mut self, node_id: &NodeId) {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `election_timeout`, `heartbeat_interval`, and `command_rx` are never read
[INFO] [stdout]   --> src/consensus.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct RaftConsensus {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     election_timeout: (Duration, Duration),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     /// Heartbeat interval
[INFO] [stdout] 20 |     heartbeat_interval: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ConsensusCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/consensus.rs:51:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl RaftConsensus {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     async fn start_election_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     async fn start_heartbeat_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     async fn start_command_processor(&mut self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn random_election_timeout(&self) -> Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     async fn start_election(&self, state: &mut ConsensusState, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     async fn send_heartbeats(&self, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     async fn propose_operation(&self, operation: Operation, cluster_state: &ClusterState) -> Result<String, ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `membership_rx`, and `command_rx` are never read
[INFO] [stdout]   --> src/membership.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MembershipManager {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: MembershipConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     membership_rx: broadcast::Receiver<MembershipEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     command_rx: mpsc::Receiver<MembershipCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_heartbeat_monitor`, `start_failure_detector`, and `start_command_processor` are never used
[INFO] [stdout]    --> src/membership.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl MembershipManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     async fn start_heartbeat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Members...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     async fn start_failure_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Membersh...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     async fn start_command_processor(&self, _cluster_state: Arc<ClusterState>, _command_tx: tokio::sync::mpsc::Sender<MembershipCom...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `command_rx` are never read
[INFO] [stdout]   --> src/replication.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ReplicationManager {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: ReplicationConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ReplicationCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start_status_monitor`, `start_queue_processor`, `start_sync_scheduler`, and `replicate_item_to_node` are never used
[INFO] [stdout]    --> src/replication.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ReplicationManager {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     async fn replicate_item_to_node(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.23s
[INFO] running `Command { std: "docker" "inspect" "05f9c286774f77da4ca2194af2f326b9ad6dee0f275696a863c3bddb20c52509", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05f9c286774f77da4ca2194af2f326b9ad6dee0f275696a863c3bddb20c52509", kill_on_drop: false }`
[INFO] [stdout] 05f9c286774f77da4ca2194af2f326b9ad6dee0f275696a863c3bddb20c52509
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ada622e5ab9e76c2f396e49db5dcda0902b1201b4c241e4e050543818b93cd13
[INFO] running `Command { std: "docker" "start" "-a" "ada622e5ab9e76c2f396e49db5dcda0902b1201b4c241e4e050543818b93cd13", kill_on_drop: false }`
[INFO] [stdout] warning: unexpected `cfg` condition value: `full`
[INFO] [stdout]   --> src/lib.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(feature = "full")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `full` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/consensus.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/membership.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/consensus.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let mut votes = 1; // Vote for ourselves
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:212:47
[INFO] [stdout]     |
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:219:50
[INFO] [stdout]     |
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:244:63
[INFO] [stdout]     |
[INFO] [stdout] 244 |     async fn handle_vote_request(&self, request: VoteRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:285:82
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...endEntriesRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:190:45
[INFO] [stdout]     |
[INFO] [stdout] 190 | ...eat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...re_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:150:42
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/replication.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         item: &ReplicationItem,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:235:42
[INFO] [stdout]     |
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/replication.rs:429:48
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn record_operation_failure(&mut self, node_id: &NodeId) {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `election_timeout`, `heartbeat_interval`, and `command_rx` are never read
[INFO] [stdout]   --> src/consensus.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct RaftConsensus {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     election_timeout: (Duration, Duration),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     /// Heartbeat interval
[INFO] [stdout] 20 |     heartbeat_interval: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ConsensusCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/consensus.rs:51:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl RaftConsensus {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     async fn start_election_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     async fn start_heartbeat_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     async fn start_command_processor(&mut self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn random_election_timeout(&self) -> Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     async fn start_election(&self, state: &mut ConsensusState, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     async fn send_heartbeats(&self, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     async fn propose_operation(&self, operation: Operation, cluster_state: &ClusterState) -> Result<String, ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `membership_rx`, and `command_rx` are never read
[INFO] [stdout]   --> src/membership.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MembershipManager {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: MembershipConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     membership_rx: broadcast::Receiver<MembershipEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     command_rx: mpsc::Receiver<MembershipCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kotoba-db-cluster v0.1.21 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `start_heartbeat_monitor`, `start_failure_detector`, and `start_command_processor` are never used
[INFO] [stdout]    --> src/membership.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl MembershipManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     async fn start_heartbeat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Members...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     async fn start_failure_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Membersh...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     async fn start_command_processor(&self, _cluster_state: Arc<ClusterState>, _command_tx: tokio::sync::mpsc::Sender<MembershipCom...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `command_rx` are never read
[INFO] [stdout]   --> src/replication.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ReplicationManager {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: ReplicationConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ReplicationCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start_status_monitor`, `start_queue_processor`, `start_sync_scheduler`, and `replicate_item_to_node` are never used
[INFO] [stdout]    --> src/replication.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ReplicationManager {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     async fn replicate_item_to_node(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `full`
[INFO] [stdout]   --> src/lib.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(feature = "full")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `full` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/consensus.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/membership.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/consensus.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let mut votes = 1; // Vote for ourselves
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:212:47
[INFO] [stdout]     |
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:219:50
[INFO] [stdout]     |
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:244:63
[INFO] [stdout]     |
[INFO] [stdout] 244 |     async fn handle_vote_request(&self, request: VoteRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/consensus.rs:285:82
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...endEntriesRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:190:45
[INFO] [stdout]     |
[INFO] [stdout] 190 | ...eat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/membership.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...re_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:150:42
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/replication.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         item: &ReplicationItem,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cluster_state`
[INFO] [stdout]    --> src/replication.rs:235:42
[INFO] [stdout]     |
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> src/replication.rs:429:48
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn record_operation_failure(&mut self, node_id: &NodeId) {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `election_timeout`, `heartbeat_interval`, and `command_rx` are never read
[INFO] [stdout]   --> src/consensus.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct RaftConsensus {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     election_timeout: (Duration, Duration),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     /// Heartbeat interval
[INFO] [stdout] 20 |     heartbeat_interval: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ConsensusCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/consensus.rs:51:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl RaftConsensus {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     async fn start_election_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     async fn start_heartbeat_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     async fn start_command_processor(&mut self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn random_election_timeout(&self) -> Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     async fn start_election(&self, state: &mut ConsensusState, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     async fn send_heartbeats(&self, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     async fn propose_operation(&self, operation: Operation, cluster_state: &ClusterState) -> Result<String, ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `membership_rx`, and `command_rx` are never read
[INFO] [stdout]   --> src/membership.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MembershipManager {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: MembershipConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     membership_rx: broadcast::Receiver<MembershipEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     command_rx: mpsc::Receiver<MembershipCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_heartbeat_monitor`, `start_failure_detector`, and `start_command_processor` are never used
[INFO] [stdout]    --> src/membership.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl MembershipManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     async fn start_heartbeat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Members...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     async fn start_failure_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Membersh...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     async fn start_command_processor(&self, _cluster_state: Arc<ClusterState>, _command_tx: tokio::sync::mpsc::Sender<MembershipCom...
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `command_rx` are never read
[INFO] [stdout]   --> src/replication.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ReplicationManager {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     config: ReplicationConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     command_rx: mpsc::Receiver<ReplicationCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start_status_monitor`, `start_queue_processor`, `start_sync_scheduler`, and `replicate_item_to_node` are never used
[INFO] [stdout]    --> src/replication.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ReplicationManager {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     async fn replicate_item_to_node(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.68s
[INFO] running `Command { std: "docker" "inspect" "ada622e5ab9e76c2f396e49db5dcda0902b1201b4c241e4e050543818b93cd13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ada622e5ab9e76c2f396e49db5dcda0902b1201b4c241e4e050543818b93cd13", kill_on_drop: false }`
[INFO] [stdout] ada622e5ab9e76c2f396e49db5dcda0902b1201b4c241e4e050543818b93cd13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 699bf0666aa4206d646afd780c5be870290f9e9e026f6007df25f463638cfd44
[INFO] running `Command { std: "docker" "start" "-a" "699bf0666aa4206d646afd780c5be870290f9e9e026f6007df25f463638cfd44", kill_on_drop: false }`
[INFO] [stderr] warning: unexpected `cfg` condition value: `full`
[INFO] [stderr]   --> src/lib.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | #[cfg(feature = "full")]
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `default`
[INFO] [stderr]    = help: consider adding `full` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Instant`
[INFO] [stderr]  --> src/consensus.rs:9:27
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::time::{Duration, Instant};
[INFO] [stderr]   |                           ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/membership.rs:7:33
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/consensus.rs:133:13
[INFO] [stderr]     |
[INFO] [stderr] 133 |         let mut votes = 1; // Vote for ourselves
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/consensus.rs:212:47
[INFO] [stderr]     |
[INFO] [stderr] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/consensus.rs:219:50
[INFO] [stderr]     |
[INFO] [stderr] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/consensus.rs:244:63
[INFO] [stderr]     |
[INFO] [stderr] 244 |     async fn handle_vote_request(&self, request: VoteRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |                                                               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/consensus.rs:285:82
[INFO] [stderr]     |
[INFO] [stderr] 285 | ...endEntriesRequest, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/membership.rs:190:45
[INFO] [stderr]     |
[INFO] [stderr] 190 | ...eat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stderr]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/membership.rs:224:44
[INFO] [stderr]     |
[INFO] [stderr] 224 | ...re_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<MembershipEvent>) -> Result<(...
[INFO] [stderr]     |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/replication.rs:150:42
[INFO] [stderr]     |
[INFO] [stderr] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/replication.rs:195:43
[INFO] [stderr]     |
[INFO] [stderr] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `item`
[INFO] [stderr]    --> src/replication.rs:261:9
[INFO] [stderr]     |
[INFO] [stderr] 261 |         item: &ReplicationItem,
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cluster_state`
[INFO] [stderr]    --> src/replication.rs:235:42
[INFO] [stderr]     |
[INFO] [stderr] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cluster_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> src/replication.rs:429:48
[INFO] [stderr]     |
[INFO] [stderr] 429 |     pub fn record_operation_failure(&mut self, node_id: &NodeId) {
[INFO] [stderr]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `election_timeout`, `heartbeat_interval`, and `command_rx` are never read
[INFO] [stderr]   --> src/consensus.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct RaftConsensus {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 18 |     election_timeout: (Duration, Duration),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 19 |     /// Heartbeat interval
[INFO] [stderr] 20 |     heartbeat_interval: Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     command_rx: mpsc::Receiver<ConsensusCommand>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/consensus.rs:51:14
[INFO] [stderr]     |
[INFO] [stderr]  28 | impl RaftConsensus {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  51 |     async fn start_election_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  68 |     async fn start_heartbeat_timer(&self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  87 |     async fn start_command_processor(&mut self, cluster_state: Arc<ClusterState>) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     fn random_election_timeout(&self) -> Duration {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     async fn start_election(&self, state: &mut ConsensusState, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     async fn send_heartbeats(&self, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     async fn propose_operation(&self, operation: Operation, cluster_state: &ClusterState) -> Result<String, ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 212 |     async fn add_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     async fn remove_node(&self, node_id: NodeId, cluster_state: &ClusterState) -> Result<(), ConsensusError> {
[INFO] [stderr]     |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `config`, `membership_rx`, and `command_rx` are never read
[INFO] [stderr]   --> src/membership.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct MembershipManager {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 18 |     config: MembershipConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     membership_rx: broadcast::Receiver<MembershipEvent>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     command_rx: mpsc::Receiver<MembershipCommand>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `start_heartbeat_monitor`, `start_failure_detector`, and `start_command_processor` are never used
[INFO] [stderr]    --> src/membership.rs:190:14
[INFO] [stderr]     |
[INFO] [stderr]  29 | impl MembershipManager {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 190 |     async fn start_heartbeat_monitor(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Members...
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 224 |     async fn start_failure_detector(&self, cluster_state: Arc<ClusterState>, membership_tx: tokio::sync::broadcast::Sender<Membersh...
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 258 |     async fn start_command_processor(&self, _cluster_state: Arc<ClusterState>, _command_tx: tokio::sync::mpsc::Sender<MembershipCom...
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `config` and `command_rx` are never read
[INFO] [stderr]   --> src/replication.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct ReplicationManager {
[INFO] [stderr]    |            ------------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 18 |     config: ReplicationConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     command_rx: mpsc::Receiver<ReplicationCommand>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `start_status_monitor`, `start_queue_processor`, `start_sync_scheduler`, and `replicate_item_to_node` are never used
[INFO] [stderr]    --> src/replication.rs:150:14
[INFO] [stderr]     |
[INFO] [stderr]  28 | impl ReplicationManager {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 150 |     async fn start_status_monitor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 195 |     async fn start_queue_processor(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     async fn start_sync_scheduler(&self, cluster_state: Arc<ClusterState>) -> Result<(), ReplicationError> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 260 |     async fn replicate_item_to_node(
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kotoba-db-cluster` (lib) generated 21 warnings (run `cargo fix --lib -p kotoba-db-cluster` to apply 14 suggestions)
[INFO] [stderr] warning: `kotoba-db-cluster` (lib test) generated 21 warnings (21 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kotoba_db_cluster-440cad9f3779e5e4)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test membership::tests::test_heartbeat_info ... ok
[INFO] [stdout] test tests::test_partition_assignment ... ok
[INFO] [stdout] test replication::tests::test_replication_queue ... ok
[INFO] [stdout] test replication::tests::test_replication_status ... ok
[INFO] [stdout] test partitioning::tests::test_key_range ... ok
[INFO] [stdout] test tests::test_cluster_state_creation ... ok
[INFO] [stdout] test membership::tests::test_cluster_stats ... ok
[INFO] [stdout] test membership::tests::test_add_remove_node ... ok
[INFO] [stdout] test replication::tests::test_replication_manager_creation ... ok
[INFO] [stdout] test membership::tests::test_membership_manager_creation ... ok
[INFO] [stdout] test partitioning::tests::test_partition_assignment ... ok
[INFO] [stderr]    Doc-tests kotoba_db_cluster
[INFO] [stdout] test partitioning::tests::test_partition_stats ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "699bf0666aa4206d646afd780c5be870290f9e9e026f6007df25f463638cfd44", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "699bf0666aa4206d646afd780c5be870290f9e9e026f6007df25f463638cfd44", kill_on_drop: false }`
[INFO] [stdout] 699bf0666aa4206d646afd780c5be870290f9e9e026f6007df25f463638cfd44
